home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 23
/
Amiga Format AFCD23 (Feb 1998, Issue 107).iso
/
-seriously_amiga-
/
shareware
/
programming
/
other
/
hunk
/
hoppers
/
sasc_6xx.hop
< prev
next >
Wrap
Text File
|
1997-12-01
|
5KB
|
127 lines
;*************************************************************************
;** SAS/C v6.xx **
;** Contributor: L.Lucius Sept 25th 1995 **
;** Modified for HOp: Thomas Richter (thor) Nov 1st 1997 **
;** Function: Modify 68000 math routines to use 68020+ instructions. **
;*************************************************************************
;*************************************************************************
;
; DIVS/DIVU/MODS/MODU
;
#match
#code
4A80 ; TST.L D0
6A00 001E ; BPL.W 0022
4480 ; NEG.L D0
4A81 ; TST.L D1
6A00 000C ; BPL.W 0018
4481 ; NEG.L D1
6100 0020 ; BSR.W 0032
4481 ; NEG.L D1
4E75 ; RTS
6100 0018 ; BSR.W 0032
4480 ; NEG.L D0
4481 ; NEG.L D1
4E75 ; RTS
4A81 ; TST.L D1
6A00 000C ; BPL.W 0032
4481 ; NEG.L D1
6100 0006 ; BSR.W 0032
4480 ; NEG.L D0
4E75 ; RTS
2F02 ; MOVE.L D2,-(A7)
4841 ; SWAP D1
3401 ; MOVE.W D1,D2
;
;
#replace
4C41 0801 ; DIVSL.L D1,D1:D0
4E75 ; RTS
4480 ; NEG.L D0
4A81 ; TST.L D1
6A00 000C ; BPL.W 0018
4481 ; NEG.L D1
6100 0020 ; BSR.W 0032
4481 ; NEG.L D1
4E75 ; RTS
6100 0018 ; BSR.W 0032
4480 ; NEG.L D0
4481 ; NEG.L D1
4E75 ; RTS
4A81 ; TST.L D1
6A00 000C ; BPL.W 0032
4481 ; NEG.L D1
6100 0006 ; BSR.W 0032
4480 ; NEG.L D0
4E75 ; RTS
4C41 0001 ; DIVUL.L D1,D1:D0
4E75 ; RTS
#end
;*************************************************************************
;
; MULS
;
#match
#code
48E7 3000 ; MOVEM.L D2-D3,-(A7)
2400 ; MOVE.L D0,D2
2601 ; MOVE.L D1,D3
4842 ; SWAP D2
4843 ; SWAP D3
C4C1 ; MULU.W D1,D2
C6C0 ; MULU.W D0,D3
C0C1 ; MULU.W D1,D0
D443 ; ADD.W D3,D2
4842 ; SWAP D2
4242 ; CLR.W D2
D082 ; ADD.L D2,D0
4CDF 000C ; MOVEM.L (A7)+,D2-D3
4E75 ; RTS
;
;
#replace
4C01 0800 ; MULS.L D1,D0
4E75 ; RTS
#end
;*************************************************************************
;
; MULU
;
#match
#code
48E7 7000 ; MOVEM.L D1-D3,-(A7)
2400 ; MOVE.L D0,D2
6720 ; BEQ.B 0028
4A81 ; TST.L D1
6604 ; BNE.B 0010
4280 ; CLR.L D0
6018 ; BRA.B 0028
2600 ; MOVE.L D0,D3
C6C1 ; MULU.W D1,D3
4842 ; SWAP D2
C4C1 ; MULU.W D1,D2
4842 ; SWAP D2
4242 ; CLR.W D2
D682 ; ADD.L D2,D3
4841 ; SWAP D1
C0C1 ; MULU.W D1,D0
4840 ; SWAP D0
4240 ; CLR.W D0
D083 ; ADD.L D3,D0
4CDF 000E ; MOVEM.L (A7)+,D1-D3
4E75 ; RTS
;
;
#replace
4C01 0000 ; MULU.L D1,D0
4E75 ; RTS
#end